﻿using System;
using System.ServiceModel;
using System.Collections.Generic;
using com.clinica.business.entities;
using com.clinica.business.BE.gescot;
using com.clinica.business.BE.comun;
/****************************************************************************************
 * Sistema    : Sistema de Gestión de Clinica
 * Modulo     : Facturación y Presupuestos
 * Descripción: 
 * Autor      : JPEREZ
 * Fecha      : 2011-06-01
 ****************************************************************************************/

namespace com.clinica.business.BL.interfaces.gescot
{
    [ServiceContract(Namespace = "http://com.clinica.business.BL.interfaces.gescot", Name = "ICotizacionBL", SessionMode = SessionMode.Allowed)]
    public interface ICotizacionBL
    {
        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "ObternerSolCotizaciones")]
        List<CotizacionBE> ObternerSolCotizaciones(CotizacionBE request, DateTime dtFecha_Inicio, DateTime dtFecha_Fin);

        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "ObternerSolCotizaciones_Estado")]
        List<CotizacionBE> ObternerSolCotizaciones_Estado(CotizacionBE request, DateTime dtFecha_Inicio, DateTime dtFecha_Fin);

        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "ObternerTipoDocumento")]
        List<ParametrosBE> ObternerTipoDocumento(ParametrosBE request);

        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "ObternerlCotizacion")]
        List<CotizacionBE> ObternerCotizacion(CotizacionBE request);

        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "GuardarCotizacion")]
        int GuardarCotizacion(int accion, List<CotizacionBE> request);

        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "ObternerEspecializacion")]
        List<ParametrosBE> ObternerEspecializacion(int tipo,ParametrosBE request);

        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "AprobarCotizacion")]
        int AprobarCotizacion(CotizacionBE request);

        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "RechazarCotizacion")]
        int RechazarCotizacion(CotizacionBE request);

        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "AnularCotizacion")]
        void AnularCotizacion(CotizacionBE obj);

    }
}
